package com.ruoyi.crm.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 销售机会对象 sales_opportunities
 *
 * @author fjc
 * @date 2021-08-25
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SalesOpportunities extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;

    /** 机会名称 */
    @Excel(name = "机会名称")
    private String oppoName;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 销售机会编号 */
    @Excel(name = "销售机会编号")
    private String saleNo;

    /** 联系人姓名 */
    @Excel(name = "联系人姓名")
    private String telName;

    /** 销售阶段 */
    @Excel(name = "销售阶段")
    private String saleStage;

    /** 可能性 */
    @Excel(name = "可能性")
    private Long possibility;

    /** 预计成交日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计成交日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectDealDate;

    /** 预计合同金额 */
    @Excel(name = "预计合同金额")
    private String expectAccount;

    /** 预算绝对值 */
    @Excel(name = "预算绝对值")
    private String budget;

    /** 销售负责人 */
    @Excel(name = "销售负责人")
    private String follower;

    /** 销售负责人 */
    @Excel(name = "商机类型")
    private String businessType;

    /** 销售负责人 */
    @Excel(name = "商机来源")
    private String businessFrom;

    /** 销售负责人 */
    @Excel(name = "币种")
    private String currency;

    /** 销售负责人 */
    @Excel(name = "老客户营销")
    private String isOldCustomer;

    /** 销售负责人 */
    @Excel(name = "竞争对手")
    private String competitor;

    /** 销售负责人 */
    @Excel(name = "项目所在地")
    private String projectLocation;

    /** 销售负责人 */
    @Excel(name = "项目运作模式")
    private String projectOperationMode;

    /** 销售负责人 */
    @Excel(name = "项目主设单位")
    private String projectUnit;

    /** 销售负责人 */
    @Excel(name = "设计单位联系人")
    private String projectUnitContact;

    /** 销售负责人 */
    @Excel(name = "当前状态")
    private String status;

    /** 销售负责人 */
    @Excel(name = "最新进展")
    private String lastProgress;

    /** 销售负责人 */
    @Excel(name = "最新联系人")
    private String followerLast;

    /** 销售负责人 */
    @Excel(name = "最新更新时间")
    private String updateTimeLast;

    /** 销售负责人 */
    @Excel(name = "客户需求或痛点")
    private String w2pWhy;

    /** 销售负责人 */
    @Excel(name = "是否已经立项")
    private String w2pPlan;

    /** 销售负责人 */
    @Excel(name = "资金预算是多少")
    private String w2pBudget;

    /** 销售负责人 */
    @Excel(name = "关键决策人是谁")
    private String w2pWho;

    /** 销售负责人 */
    @Excel(name = "关键决策因素有哪些")
    private String w2pWhat;

    /** 销售负责人 */
    @Excel(name = "决策流程是怎样的")
    private String w2pHow;

    /** 销售负责人 */
    @Excel(name = "竞争对手提供的方案")
    private String w2pProgramme;

    /** 销售负责人 */
    @Excel(name = "优势")
    private String advantage;

    /** 销售负责人 */
    @Excel(name = "劣势")
    private String disadvantage;

    /** 销售负责人 */
    @Excel(name = "机会")
    private String opportunity;

    /** 销售负责人 */
    @Excel(name = "威胁")
    private String threaten;

    /** 销售负责人 */
    @Excel(name = "备注")
    private String markInfo;

    /** 销售负责人 */
    @Excel(name = "附件")
    private String enclosureInfo;

    /** 销售负责人 */
    @Excel(name = "评论信息")
    private String comment;

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setOppoName(String oppoName)
    {
        this.oppoName = oppoName;
    }

    public String getOppoName()
    {
        return oppoName;
    }
    public void setCustomerName(String customerName)
    {
        this.customerName = customerName;
    }

    public String getCustomerName()
    {
        return customerName;
    }
    public void setSaleNo(String saleNo)
    {
        this.saleNo = saleNo;
    }

    public String getSaleNo()
    {
        return saleNo;
    }
    public void setTelName(String telName)
    {
        this.telName = telName;
    }

    public String getTelName()
    {
        return telName;
    }
    public void setSaleStage(String saleStage)
    {
        this.saleStage = saleStage;
    }

    public String getSaleStage()
    {
        return saleStage;
    }
    public void setPossibility(Long possibility)
    {
        this.possibility = possibility;
    }

    public Long getPossibility()
    {
        return possibility;
    }
    public void setExpectDealDate(Date expectDealDate)
    {
        this.expectDealDate = expectDealDate;
    }

    public Date getExpectDealDate()
    {
        return expectDealDate;
    }
    public void setExpectAccount(String expectAccount)
    {
        this.expectAccount = expectAccount;
    }

    public String getExpectAccount()
    {
        return expectAccount;
    }
    public void setBudget(String budget)
    {
        this.budget = budget;
    }

    public String getBudget()
    {
        return budget;
    }
    public void setFollower(String follower)
    {
        this.follower = follower;
    }

    public String getFollower()
    {
        return follower;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("oppoName", getOppoName())
                .append("customerName", getCustomerName())
                .append("saleNo", getSaleNo())
                .append("telName", getTelName())
                .append("saleStage", getSaleStage())
                .append("possibility", getPossibility())
                .append("expectDealDate", getExpectDealDate())
                .append("expectAccount", getExpectAccount())
                .append("budget", getBudget())
                .append("follower", getFollower())
                .toString();
    }
}